using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("BrawlSpell")]
	public class BrawlSpell : Spell
	{
		public float m_MinJumpHeight => method_2<float>("m_MinJumpHeight");

		public float m_MaxJumpHeight => method_2<float>("m_MaxJumpHeight");

		public float m_MinJumpInDelay => method_2<float>("m_MinJumpInDelay");

		public float m_MaxJumpInDelay => method_2<float>("m_MaxJumpInDelay");

		public float m_JumpInDuration => method_2<float>("m_JumpInDuration");

		public iTween.EaseType m_JumpInEaseType => method_2<iTween.EaseType>("m_JumpInEaseType");

		public float m_HoldTime => method_2<float>("m_HoldTime");

		public float m_MinJumpOutDelay => method_2<float>("m_MinJumpOutDelay");

		public float m_MaxJumpOutDelay => method_2<float>("m_MaxJumpOutDelay");

		public float m_JumpOutDuration => method_2<float>("m_JumpOutDuration");

		public iTween.EaseType m_JumpOutEaseType => method_2<iTween.EaseType>("m_JumpOutEaseType");

		public float m_SurvivorHoldDuration => method_2<float>("m_SurvivorHoldDuration");

		public List<GameObject> m_LeftJumpOutBones => method_3<Class271<GameObject>>("m_LeftJumpOutBones")?.method_25();

		public List<GameObject> m_RightJumpOutBones => method_3<Class271<GameObject>>("m_RightJumpOutBones")?.method_25();

		public float m_JumpInSoundDelay => method_2<float>("m_JumpInSoundDelay");

		public float m_JumpOutSoundDelay => method_2<float>("m_JumpOutSoundDelay");

		public float m_LandSoundDelay => method_2<float>("m_LandSoundDelay");

		public int m_jumpsPending => method_2<int>("m_jumpsPending");

		public Card m_survivorCard => method_3<Card>("m_survivorCard");

		public BrawlSpell(IntPtr address, string className)
			: base(address, className)
		{
		}

		public BrawlSpell(IntPtr address)
			: this(address, "BrawlSpell")
		{
		}

		public new void OnAction(SpellStateType prevStateType)
		{
			method_8("OnAction", prevStateType);
		}

		public Card FindSurvivor()
		{
			return method_14<Card>("FindSurvivor", Array.Empty<object>());
		}

		public void StartJumpIns()
		{
			method_8("StartJumpIns");
		}

		public void OnJumpInComplete(Card targetCard)
		{
			method_8("OnJumpInComplete", targetCard);
		}

		public void StartJumpOuts()
		{
			method_8("StartJumpOuts");
		}

		public void OnJumpOutComplete(Card targetCard)
		{
			method_8("OnJumpOutComplete", targetCard);
		}

		public bool IsSurvivorAlone()
		{
			return method_11<bool>("IsSurvivorAlone", Array.Empty<object>());
		}
	}
}
